/*
 * Copyright (c) 2006-2021, RT-Thread Development Team
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Change Logs:
 * Date           Author       Notes
 * 2023-10-01     FuLei       the first version
 */
#ifndef HARDWARE_DAQ_H_
#define HARDWARE_DAQ_H_


#define CTRL_AUTO_SLOW_1    1    // 1：低速自动  2：中速自动 ，  3：高速自动
#define CTRL_AUTO_MEDI_2    2
#define CTRL_AUTO_HIGH_3    3
#define CTRL_MANU_SLOW_4    4    //  4：低速手动 5  ：中速手动 ，6：高速手动
#define CTRL_MANU_MEDI_5    5
#define CTRL_MANU_HIGH_6    6


typedef struct _LoadDataFrm
{
    rt_uint32_t cur_ad7190_adc;  // ad7190 原始adc 24bit原码--当前值
    rt_uint32_t pre_ad7190_adc;

    float cur_realforce;     // 标定后真实值
    float pre_realforce;     // 标定后真实值
    rt_uint32_t para_filter;   // 滤波系数  取值 1-19

    rt_uint32_t para_K;         // 标定法1
    rt_uint32_t para_B;         // 标定系数 K, B

    float X_adc[2];         // 标定法2: 2点法标定
    float Y_force[2];         // 标定x, y

    float delta_force;     // 力值变换情况

}LoadDataFrm;

typedef struct _CtrlDataFrm
{
    rt_uint8_t  mode;      //  模式0： | 1：低速自动  2：中速自动 ，  3：高速自动   |  4：低速手动  2：中速手动 ，  3：高速手动
    rt_uint8_t  status;    //  0：停止， 1：上升， 2：下降
    rt_uint8_t  err;       // 故障码

    rt_uint32_t pwm_freq;
    rt_uint32_t pwm_puls;
    rt_uint32_t pwm_tim;
}CtrlDataFrm;



void LoadData_Sensor(LoadDataFrm *pLoad);
void Move_SenseCtrl(LoadDataFrm *pLoad, CtrlDataFrm *pCtrl);

#endif /* HARDWARE_DAQ_H_ */
